﻿using System.Collections.Generic;
using System.Data;
using Research.Model;

namespace Research.IDAL
{
    public interface IRprjMain
    {
        DataSet ShowPageRprjMain(int pageIndex, out int totalRecord);
        int InsertRprjMain(MRprjMain mRprjMain);
        void InsertRprjChargePer(MRprjChargePer chargePer, int rPrjID);
        void InsertRprjDep(MRprjDep prjDep, int rPrjID);
        void InsertRprjFund(MRprjFund prjFund, int rPrjID);
        void InsertRprjPrj(MRprjPrj prj, int rPrjID);
        void InsertRprjSubject(MRprjSubject subject, int rPrjID);
        void InsertRprjPlanSchedule(MRprjPlanSchedule mRprjSchedule);
        void InsertRprjActualSchedule(MRprjActualSchedule actualSchedule);
        void DelRprjActualSchedule(MRprjActualSchedule actualSchedule);
        int RprjAutoNumPlus(int rPrjID);
        void DelRprjPlanSchedule(MRprjPlanSchedule mRprjSchedule);
        int CountActualSchedule(MRprjPlanSchedule mRprjSchedule);
        MRprjPlanSchedule GetmRprjPlanScheduleByRprjIDAutoNum(int rPrjID, int autoNum);
        void UpdateRprjPlanSchedule(MRprjPlanSchedule mRprjSchedule);
        
        void UpdateRprjMain(MRprjMain mRprjMain);
        void DelRprjChargePer(int rPrjID);
        void DelRprjDep(int rPrjID);
        void DelRprjFund(int rPrjID);
        void DelRprjPrj(int rPrjID);
        void DelRprjSubject(int rPrjID);
        void WriteUploadData(int rPrjID, int dataTypeID, string dataName, string dataPath, string uploadDate);
    }

    public interface IBasic
    {
        List<MRprjChargePer> GetChargePerList(string strWhere, string topNum);
        DataSet GetSubjectList();
        DataSet GetDepList();
        DataSet GetPlatformList();
        DataSet GetRprjRoleList();
        DataSet GetFundList();
        List<MRprjPrj> GetPrjList(string strWhere);
        string GetPrjName(string strWhere);
        List<MRprjPlanSchedule> GetPlanScheduleList(int rPrjID);
        List<MRprjActualSchedule> GetActualScheduleList(MRprjPlanSchedule mPlanSchedule);
        List<MRprjDep> GetRprjDepsById(int rPrjID);
        List<MRprjPrj> GetRprjPrjsById(int rPrjID);
        List<MRprjSubject> GetRprjSubjsById(int rPrjID);
        List<MRprjFund> GetRprjFundsById(int rPrjID);
        List<MRprjChargePer> GetRprjChargePersById(int rPrjID);
        MRprjMain GetRprjMainById(int rPrjID);

        DataSet GetRprjData(int rPrjID, int dataTypeID);
    }
}
